package com.project.service;


import com.github.pagehelper.PageInfo;
import com.project.bean.ClassBean;
import com.project.bean.RoomBean;
import com.project.bean.StudentBean;
import org.apache.ibatis.annotations.Insert;

import java.util.List;

public interface IRoomService {
    /**
     * 按性别查询空房间
     * @param sex 学生性别
     * @return 可入住的房间信息列表，包括房间编号和地址
     */
    List<RoomBean> findSexRoom(String sex);

    /**
     * 房间动态分页查询（需要连表），同时统计已住人数
     * @param address 房间地址（模糊匹配）
     * @param status 房间状态
     * @param canLive 是否可住
     * @param type 房间类型
     * @param pageNum 分页查询的页码
     * @return 房间对象
     */
    PageInfo<RoomBean> findRooms(String address, String status, String canLive, String type, Integer pageNum);

    /**
     * 添加房间
     */

    void addRoom(RoomBean roomBean);

    /**
     * 根据id查看房间信息，同时统计房间已住人数（并查询房间内所住学生信息，在学生信息中需要查询班级名称）
     * @param roomId 房间id
     * @return 房间对象
     */
    RoomBean findRoomById(Integer roomId);

    /**
     * 删除房间
     * 1.id统计房间的已住人数
     * 2.如果房间的已住人数为0，先删除该房间的设施记录，再删除房间并返回true，
     * 3.否则返回false
     * @param roomId 房间id
     * @return 删除房间并返回true，否则返回false
     */
    boolean deleteRoom(Integer roomId);
}
